package com.sc.nft.dao;

import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.sc.nft.mapper.SaasTaskUserRecordMapper;
import com.sc.nft.entity.SaasTaskUserRecord;
import com.sc.nft.service.SaasTaskUserRecordService;
import org.springframework.stereotype.Service;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Repository;

/**
 * 任务用户记录表,记录用户哪个任务的环境下.购买了哪些,归属于哪个阶段的任务,用来区分重置的内容和记录用户购买的任务数量(SaasTaskUserRecord)表Dao层
 *
 * @author 王伟成
 * @since 2024-01-23 18:54:47
 */
@Slf4j
@Repository
public class SaasTaskUserRecordDao extends ServiceImpl<SaasTaskUserRecordMapper, SaasTaskUserRecord> {


    public SaasTaskUserRecord getSaasTaskIdAndUserIdAndTaskTrace(Long saasTaskId, Long userId,Long offerUserId,String taskTrace){
        return lambdaQuery().eq(SaasTaskUserRecord::getSaasTaskId, saasTaskId)
                .eq(SaasTaskUserRecord::getUserId, userId)
                .eq(SaasTaskUserRecord::getStatus, true)
                .eq(SaasTaskUserRecord::getOfferUserId, offerUserId)
                .eq(SaasTaskUserRecord::getTaskTrace, taskTrace)
                .one();
    }
    /**
     * 失效掉所有的任务进度记录
     * @param id
     */
    public void updateBySaasTaskId(Long id,String taskTrace) {
        lambdaUpdate().eq(SaasTaskUserRecord::getSaasTaskId, id)
                .set(SaasTaskUserRecord::getStatus, false)
                .set(SaasTaskUserRecord::getTaskTrace, taskTrace)
                .update();
    }
}
